/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
 * Description: Hmfs-tools resize load nat
 */

#ifndef LOAD_NAT_H
#define LOAD_NAT_H

#include <iostream>

#include "hmfs_fs.h"
#include "hmfs_log.h"
#include "resize_data.h"
#include "resize_utils.h"

namespace OHOS {
namespace Hmfs {
class ResizeLoad;
class LoadNat {
public:
    LoadNat(ResizeLoad *loadPtr);
    ~LoadNat() = default;
    int32_t InitNidBitmapBegin();
    int32_t InitNodeManager();
    int32_t BuildNodeManager();
    int32_t HmfsLateInitNidBitmap();

private:
    ResizeLoad *load_ = nullptr;
    std::shared_ptr<HmfsConfigData> config_ = nullptr;
    std::shared_ptr<HmfsSuperBlockInfo> superBlockInfo_ = nullptr;
};
} // namespace Hmfs
} // namespace OHOS
#endif // LOAD_NAT_H
